#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
//gcc -lpthread

char ch[32]={0};

void* handler_thread(void* arg){

    char back[]="quit";
    while(1){
        
        if(*((int*)arg) == 1){//检测是否输入
            if(strcmp(ch,back) == 0){
                *((int*)arg)=2;//输出结束信号
                break;
            }

            printf("子线程:%s\n",ch);
            *((int*)arg)=0;//归零(输出执行完的信号)
        }
    }
    pthread_exit(NULL);
}


int main(void){

    pthread_t tid=-1;
    int true=-1;//声明一个变量,将变量的地址传入子线程,就能通过该变量传递信号;
    if(pthread_create(&tid,NULL,handler_thread,(void*)(&true)) != 0){
        perror("pthread_create err");
        return -1;
    }
    while(1){
        
        scanf("%s",ch);
        true =1;//输入后便发送信号
        
        while(true == 1);//等待true的值改变(等待线程发送信号)
        if(true == 2){//检测结束信号
            break;
        }
        
    }

    pthread_join(tid,NULL);

    return 0;
}